﻿using Simple.Admin.System.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.DependencyInjection;

namespace Simple.Admin.System;

/// <summary>
/// 菜单应用服务接口
/// </summary>
public interface IMenuAppService : IApplicationService, ITransientDependency
{
    /// <summary>
    /// 创建菜单
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task CreateAsync(CreateMenuInput input);


    /// <summary>
    /// 获取用户菜单树形数据
    /// </summary>
    /// <returns></returns>
    Task<List<MenuTreeDto>> GetMenuTreeListAsync();

    /// <summary>
    /// 获取菜单树形数据
    /// </summary>
    /// <returns></returns>
    Task<List<MenuDto>> GetListAsync();

    /// <summary>
    /// 更新菜单
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task UpdateAsync(UpdateMenuInput input);

    /// <summary>
    /// 更新菜单
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task DeleteAsync(Guid id);
}
